package metier;

import java.util.ArrayList;
import java.util.Date;

public class Exemplaire {

	// VARIABLES

	private int idExemplaire;
	private Date dateAchat;
	private EnumStatusExemplaire status;
	private String isbn;
	private EmpruntEnCours empruntEnCours;
	private ArrayList<EmpruntArchive> empruntsArchives = new ArrayList<>();

	// =========== Constructeurs ============

	public Exemplaire(int id, Date date, EnumStatusExemplaire stat, String ISBN) {

		setIdExemplaire(id);
		setDateAchat(date);
		setIsbn(ISBN.toUpperCase());
		setStatus(stat);
	}

	public Exemplaire() {
	}

	// GET ET SET

	public int getIdExemplaire() {
		return idExemplaire;
	}

	public void setIdExemplaire(int idExemplaire) {
		this.idExemplaire = idExemplaire;
	}

	public Date getDateAchat() {
		return dateAchat;
	}

	public void setDateAchat(Date dateAchat) {
		this.dateAchat = dateAchat;
	}

	public EnumStatusExemplaire getStatus() {
		return status;
	}

	public void setStatus(EnumStatusExemplaire status) {
		this.status = status;
	}

	public String getIsbn() {
		return isbn;
	}

	public void setIsbn(String isbn) {
		this.isbn = isbn;
	}

	public EmpruntEnCours getEmpruntEnCours() {
		return empruntEnCours;
	}

	public void setEmpruntEnCours(EmpruntEnCours empruntEnCours) {
		this.empruntEnCours = empruntEnCours;
	}

	// ======= Methodes ==============

	public ArrayList<EmpruntArchive> getEmpruntsArchives() {
		return empruntsArchives;
	}
	

	// ======= Overriding ===========
	@Override
	public String toString() {
		return "idExemplaire=" + idExemplaire + ", status=" + status
				+ ", isbn=" + isbn;
	}

	public void archive() {
		EmpruntArchive ear = new EmpruntArchive(new Date(),
				empruntEnCours.getDateEmprunt(),
				empruntEnCours.getEmprunteur(), this);
		empruntsArchives.add(ear);
	}

}
